package com.ruoyi.customer.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 拓客认领记录对象 erp_customer_info_claim
 * 
 * @author ruoyi
 * @date 2025-08-05
 */
public class ErpCustomerInfoClaim extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 来源（0拓客来源/1个人来源） */
    @Excel(name = "来源", readConverterExp = "0=拓客来源/1个人来源")
    private Long source;

    /** 客户分类 */
    @Excel(name = "客户分类")
    private String customerClass;

    /** 项目紧急程度 */
    @Excel(name = "项目紧急程度")
    private String urgencyLevel;

    /** 拓客创建人 */
    @Excel(name = "拓客创建人")
    private String prospectCreator;

    /** 认领日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "认领日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date claimDate;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 联络人 */
    @Excel(name = "联络人")
    private String contactPerson;

    /** 联络电话 */
    @Excel(name = "联络电话")
    private String contactPhone;

    /** 其他联络方式 */
    @Excel(name = "其他联络方式")
    private String otherContactMethods;

    /** 客户来源 */
    @Excel(name = "客户来源")
    private String customerSource;

    /** 跟进状态 */
    @Excel(name = "跟进状态")
    private String followUpStatus;

    /** 跟进天数 */
    @Excel(name = "跟进天数")
    private Long followUpDays;

    /** 操作日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operationDate;

    /** 认领人 */
    @Excel(name = "认领人")
    private String claimer;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setSource(Long source) 
    {
        this.source = source;
    }

    public Long getSource() 
    {
        return source;
    }

    public void setCustomerClass(String customerClass) 
    {
        this.customerClass = customerClass;
    }

    public String getCustomerClass() 
    {
        return customerClass;
    }

    public void setUrgencyLevel(String urgencyLevel) 
    {
        this.urgencyLevel = urgencyLevel;
    }

    public String getUrgencyLevel() 
    {
        return urgencyLevel;
    }

    public void setProspectCreator(String prospectCreator) 
    {
        this.prospectCreator = prospectCreator;
    }

    public String getProspectCreator() 
    {
        return prospectCreator;
    }

    public void setClaimDate(Date claimDate) 
    {
        this.claimDate = claimDate;
    }

    public Date getClaimDate() 
    {
        return claimDate;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setOtherContactMethods(String otherContactMethods) 
    {
        this.otherContactMethods = otherContactMethods;
    }

    public String getOtherContactMethods() 
    {
        return otherContactMethods;
    }

    public void setCustomerSource(String customerSource) 
    {
        this.customerSource = customerSource;
    }

    public String getCustomerSource() 
    {
        return customerSource;
    }

    public void setFollowUpStatus(String followUpStatus) 
    {
        this.followUpStatus = followUpStatus;
    }

    public String getFollowUpStatus() 
    {
        return followUpStatus;
    }

    public void setFollowUpDays(Long followUpDays) 
    {
        this.followUpDays = followUpDays;
    }

    public Long getFollowUpDays() 
    {
        return followUpDays;
    }

    public void setOperationDate(Date operationDate) 
    {
        this.operationDate = operationDate;
    }

    public Date getOperationDate() 
    {
        return operationDate;
    }

    public void setClaimer(String claimer) 
    {
        this.claimer = claimer;
    }

    public String getClaimer() 
    {
        return claimer;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("source", getSource())
            .append("customerClass", getCustomerClass())
            .append("urgencyLevel", getUrgencyLevel())
            .append("prospectCreator", getProspectCreator())
            .append("claimDate", getClaimDate())
            .append("customerName", getCustomerName())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("otherContactMethods", getOtherContactMethods())
            .append("customerSource", getCustomerSource())
            .append("followUpStatus", getFollowUpStatus())
            .append("followUpDays", getFollowUpDays())
            .append("operationDate", getOperationDate())
            .append("claimer", getClaimer())
            .append("remarks", getRemarks())
            .toString();
    }
}
